/**
 * 入口文件
 *
 */
// 全局样式
 import "@/assets/style/main.scss";
// 基础文件引入
import Vue from "vue";
import Cookies from "js-cookie";

// 引入页面组件
import App from "./app";
import "@/utils/sys-settings"

// 引入路由文件
import router from "./router";

// 引入数据状态管理
import store from "./store";

// 引入国际化语言
import i18n from "./lang";
import "./common/login/Login";
// 引入公共组件、方法、接口
import './components';

Vue.config.devtools = true;

// 引入路由权限控制
// require("@srcPath/router/permission");
import './router/permission';
// 全局引入 封装的组件
const BaseUI = require("@srcPath/components").default;
// 全局引入工具类
// const utils = require("@srcPath/utils").default;
import utils from './utils';
if ((process.env.IS_MOCK + "") === "true") {
    let mockXHR = require("../mock").default;
    mockXHR()
}

// 全局引入 element-ui 组件
import ElementUI from "element-ui";

// 全局引入 ui-component-v4 组件
import UiComponentV4 from "ui-component-v4";
import dgExcel from "@/components/excel/index";
// 全局引入指令
import directives from "@/directive";
// 全局表格
import CommTable from '@/components/CommTable'
Vue.component("CommTable", CommTable);// 全局自定义组件
Vue.use(ElementUI, {
    i18n: (key, value) => i18n.t(key, value)
});

// global filters
import * as filters from "./filters";

// register global utility filters.
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key]);
});

Vue.use(UiComponentV4, {
    size: Cookies.get("size") || "small", // set ui-components default size
    i18n: (key, value) => i18n.t(key, value)
});

Vue.use(dgExcel, {
    i18n: (key, value) => i18n.t(key, value)
});

Vue.use(BaseUI);
Vue.use(utils);
Vue.use(directives);

Vue.config.productionTip = false;

// 实例化
new Vue({
    el: "#app",
    router,
    store,
    i18n,
    render: h => h(App)
});
